約 2,993,591 件
https://w.atwiki.jp/netnet/pages/30.html
WPF(WindowsPresentationFoundation)関連のTipsはこちらへ Drawing.BitmapからBitmapSourceにする InkCanvasの消しゴムの作り方 RichTextBoxの文字の選択 UserControlをxamlで使いたい WndProcを使用する カスタムコントロールがDesignerでエラーがでる コントロールのサイズを自動調整したい タイトルバーのないウインドウを動かせるようにする
https://w.atwiki.jp/wpfapp/
このWikiについて WPF(Windows Presentation Foundation)の情報を扱っています。 比較的新しい技術である故に、使用している人の絶対数が少なく、MFCやWindows FormのようにWWW上に情報が蓄積しているわけでは無いのが現状ですので、ここでできる限りまとめていきたいと思っています。 ある程度の情報量に達するまでは協力してくれる方も出てこないと思うので誰でも編集できる状態にはしていませんが、記事を書いてくださる人がいれば大歓迎です。下のコメント欄にまずはその旨を書いてください。 名前 コメント
https://w.atwiki.jp/nina_a/pages/61.html
テンプレート(Templates) このページを編集 概要 すべてのWPFコントロールは"見た目"を持たないように設計されている.ただし,既定の見た目を持っており,これからVisualTreeが作成される.この見た目を決めるものがコントロールテンプレートと呼ばれるものであり,XAMLで定義されている. コントロールの標準のテンプレートを表示する このプログラムは Matthew MacDonald:Pro WPF in C# 2010 Windows Presentation Foundation in .Net 4 に掲載されているものをもとに作成した. +コントロールの標準のテンプレートを表示するサンプルプログラム XAML Window x Class="WpfSampleApplication.MainWindow" xmlns="http //schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns x="http //schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="600" Width="1000" Loaded="Window_Loaded" StackPanel Orientation="Horizontal" Name="layoutRoot" TreeView Name="lstTypes" SelectedItemChanged="lstTypes_SelectedItemChanged" Width="400"/ TextBox Name="txtTemplate" Width="600" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"/ /StackPanel /Window C# using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using System.Globalization; using System.Reflection; using System.Xml; using System.Windows.Markup; namespace WpfSampleApplication { /// summary /// MainWindow.xaml の相互作用ロジック /// /summary public partial class MainWindow Window { public MainWindow() { InitializeComponent(); } private void Window_Loaded(object sender, RoutedEventArgs e) { Type controlType = typeof(Control); List Type derivedTypes = new List Type (); // Search all the types in the assembly where the Control class is defined. Assembly assembly = Assembly.GetAssembly(typeof(Control)); foreach (Type type in assembly.GetTypes()) { // Only add a type of the list if it s a Control, a concrete class, // and public. if (type.IsSubclassOf(controlType) !type.IsAbstract type.IsPublic) { derivedTypes.Add(type); } } // Sort the types. The custom TypeComparer class orders types // alphabetically by type name. derivedTypes.Sort(new AlphabeticalComparer()); // Show the list of types. lstTypes.ItemsSource = derivedTypes; } private void lstTypes_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs object e) { try { // Get the selected type. Type type = (Type)lstTypes.SelectedItem; // Instantiate the type. ConstructorInfo info = type.GetConstructor(System.Type.EmptyTypes); Control control = (Control)info.Invoke(null); // Add it to the grid (but keep it hidden). control.Visibility = Visibility.Collapsed; layoutRoot.Children.Add(control); // Get the template. ControlTemplate template = control.Template; // Get the XAML for the template. XmlWriterSettings settings = new XmlWriterSettings(); settings.Indent = true; StringBuilder sb = new StringBuilder(); XmlWriter writer = XmlWriter.Create(sb, settings); XamlWriter.Save(template, writer); // Display the template. txtTemplate.Text = sb.ToString(); // Remove the control from the grid. layoutRoot.Children.Remove(control); } catch (Exception err) { txtTemplate.Text = " テンプレートの生成に失敗しました。 " + err.Message + " "; } } private class AlphabeticalComparer IComparer Type { public int Compare(Type x, Type y) { return string.Compare(x.FullName, y.FullName); } } } } カテゴリ:WPF 名前
https://w.atwiki.jp/atachi/pages/52.html
依存関係プロパティの基本実装 [#xa682a33] 依存関係プロパティの識別子を実装 [#i7e417dd] FrameworkPropertyMetadataで指定するメタデータについて [#a3e9a582] コレクションの依存関係プロパティ [#a4489562] 参考サイト コントロールを自作する場合に、コントロールが公開するプロパティは依存関係プロパティとして実装します。 依存関係プロパティとして実装すると、バインディングが使えるようになります。 リソース データ バインディング スタイル Animations メタデータのオーバーライド プロパティ値の継承 WPF デザイナーの統合 依存関係プロパティの基本実装 依存関係プロパティは次のようにDependencyPropertyを使用して値を管理します。 値の取得や設定はすべてGetValueメソッド/SetValueメソッドで行われます。 コントロールを使う側は、公開されているプロパティである依存関係プロパティだけしか見えません。 class MyCustomControl Control { // 依存関係プロパティの識別子 public static readonly DependencyProperty IsSpinningProperty = DependencyProperty.Register( "IsSpinning", // name 引数 typeof(Boolean), // propertyType 引数 typeof(MyCustomControl), // ownerType 引数 ); // 依存関係プロパティ public bool IsSpinning { get { return (bool)GetValue(IsSpinningProperty); } set { SetValue(IsSpinningProperty, value); } } } 依存関係プロパティの識別子を実装 DependencyProperty.Register()を使用して、 WPFが持つプロパティシステムにプロパティに関する情報を登録します。 引数名 設定内容例 説明 name "IsSpinning" プロパティシステムに登録するプロパティ名。 propertyType typeof(Boolean) プロパティの型情報。typeofを使って型情報を取り出す。 ownerType typeof(MyCustomControl) プロパティを定義したクラスの型情報。 typeMetadata new FrameworkPropertyMetadata(...) プロパティについての追加情報。FrameworkPropertyMetadata を使って指定する。省略可能。こちら validateValueCallback new ValidateValueCallback(...) プロパティの値についてのバリデーション。ValidateValueCallback を使って指定する。省略可能。 Registerの戻り値には依存関係プロパティに関する情報が含まれている。 依存関係プロパティに値を設定する場合や取得する場合はこのインスタンスをつかって行う。 このインスタンスは、public static readonlyで定義する必要がある。 FrameworkPropertyMetadataで指定するメタデータについて FrameworkPropertyMetadata を使用すると、プロパティに関する設定が行える。 プロパティの初期値 プロパティ変更時に呼び出されるコールバックメソッド WPFデザイナによるデザイン時の挙動 デフォルトのデータバインディングのモード VisualObjectツリーで親から子へのプロパティ継承 WPFデザイナに関係するプロパティがいくつかあります。 適切に設定することで、WPFデザイナ使用時のパフォーマンスがよくなります。 AffectsMeasureプロパティ値の変更時に、サイズ変更を伴うコントロールの再描画が必要。 AffectsArrangeプロパティ値の変更時に、サイズ変更を伴わない(自分より下階層のサイズ変更は許可)コントロールの再描画が必要。 AffectsRenderプロパティ値の変更時に、一切のサイズ変更が伴われないコントロールの再描画が必要。 コレクションの依存関係プロパティ カスタムコントロールのコンストラクタでSetValueを使ってsingletonなコレクション型インスタンスを作成する 依存関係プロパティ識別子は読み取り専用で登録する(DependencyProperty.RegisterReadOnly を使用する) class MyCustomControl Control { public MyCustomControl() base() { SetValue(ItemsPropertyKey, new List FrameworkElement () ); } private static readonly DependencyPropertyKey ItemsPropertyKey = DependencyProperty.RegisterReadOnly( "Items", typeof(List FrameworkElement ), typeof(MyCustomControl), new FrameworkPropertyMetadata(new List FrameworkElement ()) ); // 依存関係プロパティの識別子 public static readonly DependencyProperty IsSpinningProperty = DependencyProperty.Register( "IsSpinning", // name 引数 typeof(Boolean), // propertyType 引数 typeof(MyCustomControl), // ownerType 引数 ); public static readonly DependencyProperty ItemsProperty = ItemsPropertyKey.DependencyProperty; // 依存関係プロパティ public bool IsSpinning { get { return (bool)GetValue(IsSpinningProperty); } set { SetValue(IsSpinningProperty, value); } } public List FrameworkElement Items { get { return (List FrameworkElement )GetValue(ItemsProperty); } } } 参考サイト MSDN カスタム依存関係プロパティ
https://w.atwiki.jp/ulinnzeru/pages/8.html
グラフィック投稿方法及び、エイルが求めているグラフィック 投稿方法 アップロード掲示板を設けましたので、そちらにどうぞ。 アップロード掲示板は何かと支障が出やすいので、その場合はエイルに何かしらの手段でお知らせください。 求めているグラフィック 主要人物の顔グラフィック 主人公の歩行グラフィック イベント時の挿入画 マップグラフィック 上記、かなりレベルの高い要求をしておりますが、 まさか自分のゲームにグラフィック面で協力する奇特な方はいらっしゃらないと思いますので、上記要項は飾り程度に書いておきます。
https://w.atwiki.jp/playstationhome/pages/1114.html
▽メーカー一覧CapcomCodeglue B.V.Electronic ArtsElectronic Entertainment Expo 2011Electronic Entertainment Expo 2012FromSoftwareGranzellaHellfire GamesHudson SoftIREM SOFTWARE ENGINEERINGLIAR GAMELockwood PublishingLOOT™Mass Media GamesNAMCO BANDAI GamesnDreamsNIPPON ICHI SOFTWAREO-TwoPlayStation®HomeQ-GamesRed BullSCEJSONYSony Computer EntertainmentSPE-WPFSQUARE ENIXTECMO KOEI GAMESUbisoftWill日本コカ・コーラ照英王国-----▽ラウンジ一覧▼プライベートラウンジパーソナルスペース一覧クラブハウス一覧▼パブリックラウンジ常設ラウンジ(Homeラウンジ)一覧特設ラウンジ一覧▼グローバルラウンジグローバルラウンジ一覧 目次 SPE-WPF Inc.URL公式サイト Facebook Twitter ラウンジパーソナルスペース クラブハウス 常設ラウンジ 特設ラウンジグローバルラウンジ インタラクティブアイテムゲーム オブジェクト イベント 内容 SPE-WPF Inc. URL 公式サイト http // Facebook http // Twitter http // ラウンジ パーソナルスペース クラブハウス 常設ラウンジ 特設ラウンジ グローバルラウンジ インタラクティブアイテム ゲーム オブジェクト イベント コメント欄 ※掲載情報に関するコメントはこちらへどうぞ(スパム防止のため、URLの投稿は禁止しています)。 ※Wiki編集方法が分からない方は、こちらか情報提供板へ情報をお寄せください。文章体で書き込んで頂けると、Wikiへの反映もはやくなるかと思います。 ※攻略等の質問は質問掲示板へどうぞ。 名前 コメント すべてのコメントを見る
https://w.atwiki.jp/fumiduki1985/pages/341.html
WPFアプリケーションのエントリーポイントとなるMain()関数は、App.xaml(デフォルトの名前。変更した場合はこれに限らない。)をビルドした際に自動実装され、普段プログラマが実装することはない。 しかし、Main関数を自前で実装したい場合は、App.xamlのプロパティで「ビルドアクション」を「Page」に変更すればよい。 こうすることで、Main関数が自動実装されなくなり、独自のMain関数を実装可能になる。 このページのタグ一覧 C# WPF プログラミング 最終更新日:2018/02/06
https://w.atwiki.jp/nina_a/pages/57.html
アニメーション このページを編集 概要 WPFでは,マージンなどの見た目に関わるプロパティの値を順次変化させることでアニメーションを実現する. XxxAnimationクラス WPFには時間の経過に応じて値を変化させるXxxAnimationクラスが用意されている.Xxxには変化させる値のタイプが入り,double型を変化させる場合にはDoubleAnimationクラスを利用する. +DoubleAnimationサンプル Window x Class="WpfSampleApplication.MainWindow" xmlns="http //schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns x="http //schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525" StackPanel Button Width="200" Height="100" アニメーションテスト Button.Triggers EventTrigger RoutedEvent="MouseEnter" BeginStoryboard Storyboard DoubleAnimation To="300" Duration="0 0 2" Storyboard.TargetProperty="(Button.Width)" / /Storyboard /BeginStoryboard /EventTrigger EventTrigger RoutedEvent="MouseLeave" BeginStoryboard Storyboard DoubleAnimation To="200" Duration="0 0 2" Storyboard.TargetProperty="(Button.Width)" / /Storyboard /BeginStoryboard /EventTrigger /Button.Triggers /Button /StackPanel /Window 主な依存プロパティ From アニメーションの開始値.指定しない場合は現在の値. To アニメーションの終了値.指定しない場合は既定の(オリジナルの)値. By アニメーションの変量.From+By=To.ToとByの両方が指定された場合はToが優先. Duration アニメーションの時間.Duration.Foreverで永遠に続く(無限大の時間の)アニメーション.Foreverを指定すると,無限大の時間をかけてFromからTo,Byまでアニメーションするため,変化しているように見えない.無限回続くアニメーションの意味ならばRepeatBehaviorにRepeatBehavior.Foreverをセットする. 主なプロパティ AccelerationRatio Dulationの内,加速に使う時間の割合.DecelerationRatioとの和が1を超えてはいけない. AutoReverse trueなら,アニメーション終了後,逆再生する FillBehavior アニメーション終了時の動作指定.既定は保留(アニメーション終了時の値を維持).Stopを指定すると終了(アニメーション終了時の値を破棄)する. DecelerationRatio Dulationの内,減速に使う時間の割合.AccelerationRatioとの和が1を超えてはいけない. RepeatBehavior アニメーションの繰り返し動作指定.既定は1回実行.回数や実行時間で指定. SpeedRatio アニメーションの速度.5を指定すれば5倍の早さ. ストーリーボード(Storyboard) アニメーションの対象(TargetNameとTargetProperty)をStoryboardで指定する.複数XxxAnimationを記述すれば,それらを同時実行できる. +Storyboardサンプル Storyboard DoubleAnimation To="300" Duration="0 0 2" AccelerationRatio="0.2" DecelerationRatio="0.2" Storyboard.TargetProperty="(Button.Width)" / DoubleAnimation To="300" Duration="0 0 2" AccelerationRatio="0.2" DecelerationRatio="0.2" Storyboard.TargetProperty="(Button.Height)" / /Storyboard この例ではTargetPropertyを各アニメーションごとに指定しており,TargetNameは指定していない. アニメーションを制御する 止めたり,リスタートしたり.それぞれのボタンのトリガーでPauseStoryBoardとかやってもBeginStoryBoardが見つからないので止まらない.なのでその親要素のStackPanelでまとめて記述.他の操作は MSDN 参照.再生速度とかもっと細かい制御はXAMLでは無理. +アニメーション制御サンプル Window x Class="WpfSampleApplication.MainWindow" xmlns="http //schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns x="http //schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="400" Width="500" Grid Grid.RowDefinitions RowDefinition Height="*" / RowDefinition Height="Auto" / /Grid.RowDefinitions Button Width="200" Height="100" Name="dest" Grid.Row="0" アニメーションテスト /Button StackPanel Orientation="Horizontal" Grid.Row="1" HorizontalAlignment="Center" Button Width="100" Margin="5" Content="開始" Name="start" / Button Width="100" Margin="5" Content="停止" Name="pause" / Button Width="100" Margin="5" Content="再開" Name="resume" / Button Width="100" Margin="5" Content="終了" Name="stop" / StackPanel.Triggers EventTrigger RoutedEvent="Button.Click" SourceName="start" BeginStoryboard x Name="animation" Storyboard Storyboard.TargetName="dest" DoubleAnimation To="300" Storyboard.TargetProperty="(Button.Width)" FillBehavior="Stop" Duration="0 0 15"/ DoubleAnimation To="300" Storyboard.TargetProperty="(Button.Height)" FillBehavior="Stop" Duration="0 0 15"/ /Storyboard /BeginStoryboard /EventTrigger EventTrigger RoutedEvent="Button.Click" SourceName="pause" PauseStoryboard BeginStoryboardName="animation"/ /EventTrigger EventTrigger RoutedEvent="Button.Click" SourceName="resume" ResumeStoryboard BeginStoryboardName="animation"/ /EventTrigger EventTrigger RoutedEvent="Button.Click" SourceName="stop" StopStoryboard BeginStoryboardName="animation"/ /EventTrigger /StackPanel.Triggers /StackPanel /Grid /Window イージング(Easing) イージングを使うと値の変化の仕方を変えることができる.全てのEasingFunctionについては MSDN 参照. +イージング関数にPowerEaseを指定するサンプル DoubleAnimation To="300" Storyboard.TargetProperty="(Button.Width)" Duration="0 0 2" DoubleAnimation.EasingFunction PowerEase EasingMode="EaseInOut" Power="2" / /DoubleAnimation.EasingFunction /DoubleAnimation すべてのEasingFunctionはEasingModeというプロパティを持っている. EaseIn アニメーション開始付近でイージングする EaseOut アニメーション終了付近でイージングする EaseInOut アニメーション開始と終了付近の両方でイージングする キーフレーム指定によるアニメーション XxxAnimationの変わりにXxxAnimationUsingKeyFrameを使うと,指定の時刻(キーフレーム)における値を指定することでアニメーションを実現できる. +キーフレーム指定によるアニメーション DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(Button.Width)" LinearDoubleKeyFrame Value="300" KeyTime="0 0 1"/ DiscreteDoubleKeyFrame Value="200" KeyTime="0 0 2" / SplineDoubleKeyFrame Value="100" KeyTime="0 0 3" / EasingDoubleKeyFrame Value="300" KeyTime="0 0 4" EasingDoubleKeyFrame.EasingFunction BounceEase / /EasingDoubleKeyFrame.EasingFunction /EasingDoubleKeyFrame /DoubleAnimationUsingKeyFrames キーフレームを指定するときにはYyyXxxKeyFrameを使う.Yyyにはそのキーフレームまでの値の変化の仕方が入り,Linear(直線),Discrete(不連続),Spline(スプライン),Easing(指定のイージング関数)の4種類. このサンプルでは,1秒経過まで直線的に300まで変化し,2秒経過した瞬間に200に変化,3秒経過までスプライン曲線を描いて100まで変化,その後EasingFunctionに指定されたBounceEaseを使って300まで変化する. カテゴリ:WPF 名前
https://w.atwiki.jp/waterblue0112/pages/6.html
グラフィックの置き換え方について 例えてやり方を紹介します。 ピッピのグラフィックをオーキド博士に変える 使うツールは、 unLZ.GBA バイナリエディタ オーキド博士 ピッピ 初めにそれぞれの Image Offset Palette Offset をメモしておきます。 オーキド博士 IO d66838 PO d66ba4 ピッピ IO c474b8 PO c47754 次にメモしていたIOを逆順に並べ、最後に08をつけます。 オーキド博士 IO d66838 → 38 68 d6 08 PO d66ba4 → a4 6b d6 08 ピッピ IO c474b8 → b8 74 c4 08 PO c47754 → 54 77 c4 08 ここまでが下準備です。 ココからは、バイナリエディタを使います。 ピッピをオーキド博士のグラフィックにしたいので 今回は、 b8 74 c4 08 → 38 68 d6 08 54 77 c4 08 → a4 6b d6 08 を、バイナリエディタで書き換えてあげると出来上がりです。
https://w.atwiki.jp/yumenikki_g/pages/41.html
素材の規格 RPGツクール2000で使用できる素材の規格は、以下の通りです。なお、画像付きの説明は、体験版のヘルプファイルの 目次→資料→素材データの規格 から、製品版を持っていない方でも見ることが出来ます。 ★経過色について パレットの0番の色が自動的に経過色(透明)になります。 「αチャンネル」の設定は適用されないので注意してください。 ★ゲーム画面の大きさは 320x240です。 (以下、同ヘルプファイルから引用) ●静止画素材 【共通規格】 データ形式:BMP、PNG、XYZ(独自形式) 色数 :256色(8ビットカラー)以下 (注意) デスクトップ画面の色数がTrueColor(約1677万色/24ビットカラー)の環境で表示させた場合、グラフィックボードやドライバーなどの性能により、特定の色が多少変化する場合があります(パレットの精度が設定できるソフトウェアをお持ちの場合は、これを15ビットにすることで、色の変化を緩和できます)。 【用途別規格】(画像の単位:ピクセル) (1)戦闘背景グラフィック 保存フォルダ:Backdrop 画像サイズ:横320×縦160 画像1点につき、1ファイルとして用意します。 (2)戦闘アニメグラフィック 保存フォルダ:Battle 画像サイズ:横480×縦96~480 1点あたり横96×縦96ピクセルの画像を横方向に5点並べたものを1ブロック(赤枠)とし、点数に応じてこのブロックを5つまで縦にならべます。 (3)キャラセットグラフィック 保存フォルダ:CharSet 画像サイズ :横288×縦256 1キャラ1方向1歩行パターンあたりの画像を横24×縦32で用意します(1)。 キャラクター1体につき4方向(上下左右)×歩行3パターン(Left、Middle、Right)の計12パターンを写真のように配置します(2)。 縦に2体、横に4体並べた計8体分のキャラクターを1点のファイルに収めます(3)。 (4)チップセットグラフィック 保存フォルダ:ChipSet 画像サイズ :横480×縦256 1パターンの画像は横16×縦16です。このパターンを横30点×縦16点ならべた画像を1点のファイルとして用意します。 各パターンは、画像に配置された位置によって使用用途が決まります。位置と用途の対応は「チップセットグラフィックの規格詳細」を参照してください。 (5)顔グラフィック 保存フォルダ:FaceSet 画像サイズ :横192×縦192 1点あたり縦48×横48の画像を縦横両方向に4点ずつ並べた計16点の画像を1ファイルに収めます。 (6)ゲームオーバーグラフィック 保存フォルダ:GameOver 画像サイズ :横320×縦240 画像1点につき1ファイルとして用意します。 (7)敵キャラグラフィック 保存フォルダ:Monster 画像サイズ :横16~320×縦16~160 画像1点につき1ファイルとして用意します。 (8)遠景グラフィック 保存フォルダ:Panorama 画像サイズ :横80~640×縦80~480 画像1点につき1ファイルとして用意します。 (9)ピクチャーグラフィック 保存フォルダ:Picture 画像サイズ:横1~640×縦1~480 画像1点につき1ファイルとして用意します。 (10)システムグラフィック 保存フォルダ:System 画像サイズ :横160×縦80 ゲーム画面の文字やウィンドウの表示に使う色(グラデーションパターン)を集めたグラフィックです。詳しくは「システムグラフィックの規格詳細」を参照してください。 (11)タイトルグラフィック 保存フォルダ:Title 画像サイズ :横320×縦240 画像1点につき1ファイルとして用意します。